FEIDIAN CHANGE LOG

- 0.90a -
* And after more errors, it turns out to be DWORD. UGH!
* Fixed an error in fontfile.php that allowed color images to be used (this
  will ALWAYS result in broken output).
* Fixed an error in bcr.php that was causing color images to read as
  monochrome, which made BCR completely break.

- 0.90 -
* FINALLY fixed the bitmap glitch. Previously MadMalkav and I thought it was
  a image width issue, hence the option in settings ot force valid width. This
  turned out to be incorrect. The bitmap specification I was working on failed
  to mention all image data has to be stored in WORDs, not BYTEs. All files
  have been updated for this fix. FEIDIAN should finally work with all possible
  widths in Bitmap and XPM formats.
* Fixed numerous spelling errors in this change log that have accumulated the
  last 8 months.

- v0.89 -
* Added support for Tile Layer Pro color palettes. This should make it easier
  to get the colors you want in FEIDIAN output. In Tile Layer Pro, you can
  drag around the sliders to change colors. When you get all the colors how
  you want, this can be saved to a .TPL. You can include these .TPL files in
  FEIDIAN by adding them AFTER the output file in -cr ripping. It is only
  supported in -cr since -cr is the only non-monochrome ripping function.

- v0.86 -
* If you need to interleave every pixel (like GBA does), just add
  "$interleave=1;" to your tile definition. This would transform 01234567 into
  10325476, which some systems do. The interleave is performed AFTER all
  planes have been merged, so if you needed to interleave only certain planes
  (which would be absolutely psychotic from a development standpoint) you
  would still need to make a custom dump/insert routine in the tile
  definition.
* Changed the copyright tag

- v0.85a -
* Fixed a glitch with tile padding which appears to have been present for
  several versions. Padding by an odd integer width will break. The reason is
  yet unknown (it SHOULD be making valid bitmap widths and appears to expand
  the tiles properly...). For now, FEIDIAN just blocks you from using odd
  integers. There were also some other fixes and speed-ups to the pad code.
* Not directly included, but there's now a tile definition for
  Game Boy Advance on the website made thanks to some information on the
  format provided by Kojiro Sasaki.

- v0.85 -
* Fixed an severe error (set $bit2 twice) that was causing all 3bpp insertion
  to break.
* Fixed a glitch with linear insertion. Genesis/Megadrive seems to work
  properly now. Can anyone verify if this holds true for NeoGeo Pocket Color?
* Added CRC32 as an option for tile data in BCR. If you want to use CRC32,
  uncomment the line in settings.php.
* Changed the MD5 and SHA1 for BCR to use raw output instead of alpha-numeric.
  This means the output will be half the length, making tile search even
  quicker.
* Optimized 60 lines in both custominj.php and customrip.php. But this is
  pointless since full XPM support required adding a ton more.
* Full support for XPM reading and writing in all functions. Hopefully this
  proves useful to someone. On the upside of things, with XPM support GDLIB 2.0
  should now be at my disposal.
* Added a line to start muting notices. There's this minor annoyance about
  declaring a color depth twice when working with custom tiles. It's because
  the tile definition gets included twice. I've updated the tile definition
  template to check if a color depth has been defined and updated all tile
  definitions which people have submitted to the website, but this is just in
  case you have some creeping around your computer based on the old format.
* 8width.php has been completely phased out.

- v0.8b -
* Copyright.php has been renamed to settings.php (since it now has more
  settings than just the default font copyright).
* BCR improved to allow you to compare tiles by MD5sum or SHA1 hashes, as
  well as gzipping the data. Options for this are in settings.php. Please read
  the notes in settings.php before attempting any kind of BCR.
* European characters at ASCII 0xa0-0xef can be used in tile definitions, IF
  you enable them. Since Asian language systems cannot process these
  characters, it is disabled by default. If you create a tile definition
  dependant on these characters, please include a note that it requires
  EXTEND_LETTERS==TRUE.
* A new value, FORCE_PROPER_WIDTH, has been added to the settings. This
  addresses an issue MadMalkav discovered where color graphics corrupt if
  (columns*tile_width)%8!=0. This only affects tile widths that are not a
  multiple of 8. If you are using such a tile width, consider dumping in a
  multiple of 8 columns (8, 16, 24, 32, etc). If you forget, FEIDIAN will print
  a notice and terminate. You can disable this in settings.php.
* Custom insert and extract broken into two separate files to cut down on the
  size and make it easier to edit (less to load, too).
* Fixed a glitch that was breaking monochrome custom definitions since color
  had been added. I don't know how the hell this slipped by testing.

- v0.8a -
* Major fix to the custom tile routine. The new hierarchy for custom tile
  letters is: [A-Z] [a-z] [2-9] [!?@*]

- v0.8 -
* COLOR! COLOR! AND THEN MORE COLOR! I finally got around to it. This means
  there are a few changes to the tile definition format. You can download any
  of the sample definitions (they've all been edited for compatibility) from
  the page and have a look, or check out the definition template that comes
  with FEIDIAN now. Currently, all formats, 16 colors or under, in Klarth's
  console graphics document are supported, as well as some others. This means:
    -   8x8 2bpp NES
    - 16x16 2bpp NES
    -   8x8 2bpp SNES/Gameboy/GBC
    -   8x8 2bpp NeoGeo Pocket Color
    -   8x8 2bpp Virtual Boy
    -   8x8 3bpp SNES
    -   8x8 4bpp SNES/PC-Engine
    -   8x8 4bpp Game Gear/SMS/Wonderswan Color
    -   8x8 4bpp Megadrive/X68000
  There's also a few other tile definitions in development (I hear Kitsune is
  doing an MSX definition, which apparently NOTHING supports).
* Tile definitions can now include their own dump and insert functions (for
  any adventurous programmers out there). This probably isn't necessary, but
  it's nice to have available.
* Tile definitions support planar or linear byte arrangement (compatibility
  with Virtual Boy and NeoGeo Pocket Color)
* Speed-up to tile padding.

- v0.7 (development only) -
* Fixed some of the existing code for compatibility with 16-color bitmaps in
  preparation for v0.8.

- v0.6 -
* Tile padding has been added. You can now increase a tile's size by any x,y
  pixels without scaling the tile contents. 0 is assumed as the transparent
  bit (if this is really a problem, just invert your bitmap colors first).
  This function has many uses, notably preparation of a font for Optical
  Character Recognition (OCR), where an 8-10px spacing is needed for good
  results.
* Binary Character Recognition (BCR) added (invented?). This method allows a
  user to supply a known game font and text representation of it as a source.
  This can vastly reduce the amount of characters one needs to fill in for a
  table, if you have a similar font already done. This can be very useful since
  companies often recycle their fonts between games.
* BDF font output APPEARS to be working, but I don't have a setup available
  to test BDF fonts on. If you use it, and it works, let me know.

- v0.5 -
* FD font output support has been added. FD fonts can be compiled into
  Windows 3.0/3.11/NT/95/98/Me/2000/XP compatible .FON files using the
  excellent mkwinfont by Simon Tatham, available from his page at
  http://www.chiark.greenend.org.uk/~sgtatham/fonts/
  I would like to make .FON output automatic from FEIDIAN, but I don't know
  Python. If anyone can give me a nice file format map based off his source, I
  can add it to FEIDIAN.
  NOTE: Source bitmaps for FD output should be 256 tiles in ASCII order.
* Fixed a glitch that caused dual-tile generation to break when the tiles did
  not end evenly on a multiple of 8 bits.

- v0.45a -
* What wonderful luck. When uploading the bug fix release of 0.45, I broke the
  directory structure, rendering the bug fix release EVEN MORE BUGGED! Here's a
  correct version, and I'm very sorry for that mistake. 0.45 has been pulled
  from distribution.

- v0.45 -
* Bug fix release: Added much needed input checking to keep users from
  glitching FEIDIAN with malformed command strings. Also corrected an error
  in the insertion routine for custom tiles using the new 62-byte format.

- v0.4 -
* Expanded tile definitions to 62 bytes. This should cover most any 24x24 tile
  (assuming not EVERY byte needs to be defined, just the pattern). The new
  letter hierarchy is A-Z a-z 0-9. 0-9 was put last instead of first to ensure
  backwards compatibility with older definitions.
* Added support for color inversion in the dumps. Inversion is supported in all
  insertion and ripping functions (you have no need for it in dual-tile
  building, even if you think you do). To invert, simply add an "i" to the
  command line.
    Example: feidian.php -cr i mrsaturn,16,6,0x2015b9 eb.smc mrsaturn
  The Mr. Saturn font is stored in Earthbound with its colors reversed. This
  will dump it in the standard 0=transparent 1=color format most games use.
  You could similarly add an "i" to the command line in insertion to flip the
  colors back.

- v0.3 -
* Complete rewrite of the source code.
* Added support for creating dual-tile sets.
* Added support for custom tile definitions.
* Added support for non-8* width fonts.

- v0.2 L31 -
* Initial release

